]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
network: being able to use keyboard to connect to a Wireless
authorAlejandro Piñeiro <apinheiro@igalia.com>
Mon, 14 Oct 2013 15:42:55 +0000 (17:42 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Tue, 15 Oct 2013 18:27:05 +0000 (20:27 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=710144

js/ui/status/network.js

index fdd95a755d42bc4b6a3097b9db2e1dac6c8449ab..0ff203729292c6bc83f1245214fea611656b9022 100644 (file)
@@ -559,6 +559,8 @@ const NMWirelessDialogItem = new Lang.Class({
             this.actor.grab_key_focus();
         }));
 
+        this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPressEvent));
+
         this._content = new St.BoxLayout({ style_class: 'nm-dialog-item-box' });
         this.actor.set_child(this._content);
 
@@ -604,6 +606,16 @@ const NMWirelessDialogItem = new Lang.Class({
             return 'network-workgroup-symbolic';
         else
             return 'network-wireless-signal-' + signalToIcon(this._ap.strength) + '-symbolic';
+    },
+
+    _onKeyPressEvent: function(actor, event) {
+        let symbol = event.get_key_symbol();
+        if (symbol == Clutter.KEY_space || symbol == Clutter.KEY_Return
+            || symbol == Clutter.KEY_KP_Enter) {
+            this.emit('connect');
+            return true;
+        }
+        return false;
     }
 });
 Signals.addSignalMethods(NMWirelessDialogItem.prototype);
@@ -972,6 +984,9 @@ const NMWirelessDialog = new Lang.Class({
             Util.ensureActorVisibleInScrollView(this._scrollView, network.item.actor);
             this._selectNetwork(network);
         }));
+        network.item.connect('connect', Lang.bind(this, function() {
+            this._connect();
+        }));
     },
 });